<template>
  <div class="article-page">
    <!--v-for 对articles进行遍历循环 -->
    <div
      class="article-item"
      v-for="item in articles" :key="item.id"
      @click="$router.push(`/detail/${item.id}`)"
      >
      <!-- $router.push(`/detail/${item.id}`)"注册点击事件，跳转传递参数 -->
      <div class="head">
        <img src="http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png" alt="" />
        <div class="con">
          <p class="title">{{ item.stem }}</p>
          <p class="other">{{ item.creatorName }} | {{ item.createdAt }}</p>
        </div>
      </div>
      <div class="body">
        {{item.content}}
      </div>
      <div class="foot">点赞 {{ item.likeCount }} | 浏览 {{ item.views }}</div>
    </div>
  </div>
</template>

<script>
export default {
  data(){
   return {
    articles:[]//此处数据为空，需要从data里面获取
    // 然后把数据给到articles，才能进行页面渲染
   }
  },
  name: 'ArticlePage',
  async  created(){
    //方法一
    // const { data:{ result: { rows } } } =  await this.$axios({
    //   url:'https://mock.boxuegu.com/mock/3083/articles'
    // })
    // //const { data:{ result: { rows } } } 连续解构,
    // // 解构的内容被多层包裹时用的方法
    // console.log(rows);
    // this.articles = rows  赋值
    // 方法二：
    const {data} = await this.$axios({
      //如果不是直接深度解构到result 后面需要赋值
      url:'https://mock.boxuegu.com/mock/3083/articles'
    })
    console.log(data);
    this.articles = data.result.rows//把数据赋值给articles
      console.log(this.articles);
 },
 beforeDestroy(){
  console.log('即将被销毁');
 },
//  当组件被keep-alive管理时，会多出两个生命周期钩子，
 activated() {
  // 缓存组件激活，不用每次进入到组件都要请求数据
  //缓存以
    console.log('缓存组件被激活')
  },
  deactivated() {
    //切换页面的时候，组件被隐藏起来
    console.log('缓存组件被隐藏')
  }
};
</script>
<style lang="less" scoped>
.article-page {
  background: #f5f5f5;
}
.article-item {
  margin-bottom: 10px;
  background: #fff;
  padding: 10px 15px;
  .head {
    display: flex;
    img {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      overflow: hidden;
    }
    .con {
      flex: 1;
      overflow: hidden;
      padding-left: 15px;
      p {
        margin: 0;
        line-height: 1.5;
        &.title {
          text-overflow: ellipsis;
          overflow: hidden;
          width: 100%;
          white-space: nowrap;
        }
        &.other {
          font-size: 10px;
          color: #999;
        }
      }
    }
  }
  .body {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-top: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .foot {
    font-size: 12px;
    color: #999;
    margin-top: 10px;
  }
}
</style>